home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / misc / e-n / graph2dv3.20 / libs / garbagecollector.liesmich < prev    next >
Text File  |  1995-04-29  |  8KB  |  185 lines

  1.                                                  16-Jun-92
  2.  
  3.  
  4.               Garbage-Collector Library
  5.            ===============================
  6.  
  7.  
  8. Was macht die garbagecollector.library:
  9.  
  10.   Ein sogenannter Garbage-Collector ist ein Programm, daß von anderen
  11.   Programmen nicht mehr verwendete Ressourcen, wie in diesem Fall
  12.   Systemspeicher, aufsucht und automatisch freigibt.
  13.  
  14.   Die Programme werden dadurch einfacher, flexibler und sicherer.
  15.  
  16.   Um ihre Arbeit zu verrichten startet diese Library einen Hintergrundprozeß,
  17.   der parallel zum eigentlichen Programm läuft und ständig abwechselnd
  18.   nicht mehr verwendeten Speicher aufsucht und diesen dann freigibt.
  19.  
  20.   Um die Effizienz zu steigern werden kleinere freie Speicherblöcke nicht
  21.   direkt an das System zurückgegeben, sondern von der Library zwischen-
  22.   gespeichert, so daß sie schneller wieder verwendet werden können.
  23.  
  24.  
  25. Der Voreinstellungser GarbagePrefs:
  26.  
  27.   Damit die Garbage-Collector Library auch auf sehr unterschiedlichen System
  28.   mit bestmöglicher Effizienz eingesetzt werden kann, können verschiedene
  29.   vom System abhängigen Einstellungen mit einem speziellen Editor gemacht
  30.   werden. Dies erledigt das Programm GarbagePrefs, das zu den anderen
  31.   Voreinstellungsern in das Verzeichnis 'Prefs' der Systemdiskette bzw.
  32.   der Systempartition kopiert werden sollte.
  33.  
  34.   Wird GarbagePrefs durch einen Doppelklick auf sein Piktogramm gestartet,
  35.   können Über verschiedene Symbole einige Werte verändert werden. Diese können
  36.   dann wie bei den anderen Voreinstellungsern mit dem Symbol 'Speichern'
  37.   gespeichert und mit 'Benutzen' verwendet werden. 'Abbrechen' läßt die
  38.   zuletzt aktiven Werte unverändert.
  39.  
  40.   Möchten Sie sich nicht weiter mit der Funktion der einzelnen einzustellen
  41.   befassen, reicht es, wenn Sie 'Werte vorschlagen' aus dem Menü 'Editieren'
  42.   anwählen und diese Werte dann mit 'Speichern' aktivieren.
  43.  
  44.   Die einzelnen Werte haben folgende Bedeutung:
  45.  
  46.   Collector-Task Priorität:
  47.  
  48.     Die Priorität des Hintergrundprozesses, der den Speicher einsammelt. Der
  49.     Werte sollte auf jeden Fall kleiner null sein, da sonst dieser Prozeß
  50.     alle Rechenzeit verwendet und ein normales Arbeiten mit dem Computer
  51.     unmöglich macht.
  52.  
  53.     Zudem sollte die Priorität kleiner als die aller Prozesse sein, die diese
  54.     Library verwenden.
  55.  
  56.   Auch Chip-RAM allozieren:
  57.  
  58.     Ist dieses Symbol angewählt, alloziert diese Library sowohl Chip-RAM wie
  59.     auch sonstiges RAM. Ist es jedoch nicht angewählt, wird das langsamere
  60.     Chip-RAM von der Library nicht verwendet. Dies ist jedoch nur sinnvoll,
  61.     wenn genügend sonstiger Speicher existiert.
  62.  
  63.   Auf Collector-Zyklus warten:
  64.  
  65.     Ein Collector-Zyklus ist das Suchen von nicht mehr verwendetem Speicher
  66.     und das anschließende Freigeben dieses Speichers.
  67.  
  68.     Die hier einzugebenden Werte bestimmen, nach wievielen von der Library
  69.     angeforderten Objekten oder nach welcher Speichermenge die Library
  70.     mindestens einen Collector-Zyklus beendet haben sollte.
  71.  
  72.     Gibt man hier sehr große Werte an, kann es passieren, daß der Collector
  73.     zu wenig Rechenzeit bekommt und nach einiger Zeit einen sehr aufwendigen
  74.     Collector-Zyklus bearbeiten muß, da sehr viele Objekte untersucht werden
  75.     müssen. Zu kleine Werte bremsen dagegen Programme stark, da sie zu oft
  76.     auf Collector-Zyklen warten müssen, die eigentlich nicht unbedingt nötig
  77.     wären.
  78.  
  79.     Für die beiden Werte kann jeweils -1 angegeben werden, um anzuzeigen, daß
  80.     beliebig viele Objekte bzw. beliebig viel Speicher alloziert werden kann,
  81.     ohne daß auf einen Collector-Zyklus gewartet wird.
  82.  
  83.   Maximal allozieren:
  84.  
  85.     Die hier angegebenen Werte geben die Obergrenze an Speicher an, der von
  86.     der Library alloziert werden darf. Es kann zum einen die maximale
  87.     Anzahl an angeforderten Objekten (Speicherblöcken) und zum anderen
  88.     die maximal Anzahl in Bytes angegeben werden.
  89.  
  90.   Speicher freihalten mindestens:
  91.  
  92.     Die angegebene Menge an Speicher wird vom Collector immer freigehalten
  93.     und bleibt dem System zur Verfügung.
  94.  
  95.     Damit man auch bei einem Speichermangel noch mit dem Rechner arbeiten
  96.     kann, sollte man hier mindesten ca. 20000 Bytes freihalten.
  97.  
  98.     Alloziert die Library kein Chip-RAM (s.o.), kann hier jedoch ruhig
  99.     0 angegeben werden.
  100.  
  101.   Größten Block freihalten mindestens:
  102.  
  103.     Die Library alloziert nur Speicher, solange der größte freie
  104.     Speicherblock größer als der hier angegebene Wert bleibt.
  105.  
  106.   Freigehaltenen Speicher prüfen alle:
  107.  
  108.     Hier wird angegeben, wie oft, dh. nach wievielen Speicheranforderungen,
  109.     die bei 'Speicher freihalten mindestens' angegebene Untergrenze
  110.     geprüft werden soll.
  111.  
  112.     Wird dies zu oft geprüft, wird das Anfordern von Speicher deutlich
  113.     langsamer. Wird jedoch zu selten geprüft, kann die Untergrenze
  114.     dennoch unterschritten werden.
  115.  
  116.     '-1' gibt hier jeweils an, daß der freigehaltene Speicher nie geprüft
  117.     werden soll.
  118.  
  119.   Größten Block prüfen alle:
  120.  
  121.     Entsprechend zu 'Freigehaltenen Speicher prüfen', wird hier angegeben,
  122.     wie oft der größte freizuhaltende Block geprüft werden soll.
  123.  
  124.     '-1' gibt hier jeweils an, daß der größte Block nie geprüft werden soll.
  125.  
  126.   Maximale Größe der gemerkten Objekte:
  127.  
  128.     Der hier angegebene Wert bestimmt eine maximale Größe von Objekten, die
  129.     von der Library zwischengespeichert werden sollen, um die Effizienz beim
  130.     erneuten Anfordern eines solchen Objekts zu steigern.
  131.  
  132.   Maximal gemerkter Speicher:
  133.  
  134.     Hier kann angegeben werden, bis zu welcher maximalen Anzahl an Objekten
  135.     und welcher Obergrenze an Speicher die Library sich freie Objekte merken
  136.     soll, bevor sie sie an das System zurückgibt.
  137.  
  138.     Große Werte hier erhöhen die Effizienz, kosten jedoch Speicher.
  139.  
  140.  
  141. Das Statistikprogramm GCStat:
  142.  
  143.   Mit diesem Programm kann die Aktivität der Garbage-Collector Library
  144.   beobachtet werden. Nach dem Start durch Anwählen des Piktogramms öffnet
  145.   GCStat ein kleines Fenster. Dort werden in einer Zeile unter dem
  146.   Fenstertitel die Menge an derzeit von der Library allozierten Speicher,
  147.   die Anzahl der lebendigen und toten Objekte und die Nummer des aktuellen
  148.   Collector-Zyklus angezeigt.
  149.  
  150.   Lebendige Objekte sind diejenigen, von denen die Library meint, daß sie noch
  151.   in Benutzung sind. Tote Objekte werden derzeit von keinem Programm benutzt,
  152.   werden jedoch von der Library zwischengespeichert.
  153.  
  154.   Die Nummer des Collector-Zyklus wird einfach nach jedem Zyklus um eins hoch-
  155.   gezählt. Der erste Zyklus hat die Nummer 1.
  156.  
  157.   Unterhalb dieser Textzeile zeigt GCStat grafisch das Mengenverhältnis von
  158.   toten zu lebendigen Objekten an. Dabei wird der Anteil der lebendigen
  159.   Objekte mit Farbe 1 (gewöhnlich schwarz) und der der toten mit Farbe 3
  160.   (gewöhnlich blau) dargestellt.
  161.  
  162.   Zusätzlich zeigt eine waagerechte Linie in Farbe 2 (weiß) an, wieviel
  163.   Speicher im Augenblick in Bytes von der Library alloziert wurde. Dabei ist
  164.   diese Linie oben im Fenster, wenn dies viel Speicher ist, und unten sonst.
  165.  
  166.  
  167. Kopierrecht:
  168.  
  169.   Die garbagecollector.library und der dazugehörende Vereinsteller
  170.   GarbagePrefs und das Programm GCStat sind © 1992 Fridtjof Siebert.
  171.  
  172.   Sie und diese Dokumentation dürfen, auch einzeln, zusammen mit Programmen,
  173.   die mit dem Amiga Oberon Compiler übersetzt wurden, frei vertrieben werden.
  174.   Dies schließt die Veröffentlichung als frei kopierbare oder auch als
  175.   kommerzielle Software ein.
  176.  
  177.   Zusammen mit Programmen, die diese Library benutzen, die jedoch nicht mit
  178.   Amiga Oberon übersetzt wurden, darf diese Library nur mit ausdrücklicher
  179.   schriftlicher Genehmigung des Autors vertrieben werden.
  180.  
  181.  
  182. --- Fridtjof.
  183.  
  184.  
  185.